#include <iostream>

using namespace std;

class student_t {
  public:
    //成员变量
    const char *name;
    int         age;
    float       score;
    //成员函数,可以只在类体中声明函数，而将函数定义放在类体外面
    void say();
};

// (1)定义在类外的话要加上类名，否则无法访问类中的哪些成员变量。
// (2)在类体中和类体外定义成员函数是有区别的：在类体中定义的成员函数会自动成为内联函数，在类体外定义的不会。
//    当然，在类体内部定义的函数也可以加 inline 关键字，但这是多余的，因为类体内部定义的函数默认就是内联函数。
// (3)内联函数一般不是我们所期望的，它会将函数调用处用函数体替代，所以建议在类体内部对成员函数作声明，当然，
//    如果函数比较短小，希望定义为内联函数，那也没有什么不妥的。
void student_t::say()
{
    cout << name << "的年龄是" << age << "，成绩是" << score << endl;
}

int main()
{
    // 动态创建一个对象
    student_t *p1 = new student_t;
    p1->name = "bbb";
    p1->age = 22;
    p1->score = 95.9f;
    p1->say();

    delete p1;
    return 0;
}